import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Score2 here.
 * 
 * @author Montes Alonso Irli Natali
 * @version Programacion Orientada a Objetos
 */
public class Score2 extends Actor
{
    private int puntaje;
    private int tiempo;
    private String unMensaje;
    private SimpleTimer time;
    boolean bandEmpieza;

    /**
     * Constructor de la clase Score2
     */
    public Score2()
    {
        bandEmpieza= true;
        time= new SimpleTimer();
        puntaje=1000;
    }

    /**
     * Metodo de actua donde se usa parte del codigo de la clase de SimpleTimer
     */
    public void act() 
    {
        if(bandEmpieza)
        {
            time.mark();
            tiempo=time.millisElapsed();
            bandEmpieza=false;
        }

        if(time.millisElapsed()>=100)
        {
            time.mark();
            decrementaPuntaje();

        }
        muestraPuntaje();
    }    

    /**
     * Metodo que manda un mensaje para mostrar en el mundo puntaje y el valor que contiene
     * tambien se manda llamar a reinicia nivel para asi decrementar una vida cuando el puntaje sea 0
     */

    public void muestraPuntaje()
    {
        World mundo = super.getWorld();

        unMensaje="Puntaje: "+puntaje;
        super.setImage(new GreenfootImage(""+unMensaje,25,java.awt.Color.WHITE,null));
        if(puntajeLlegoCero())
        {
            ((Fondo)mundo).reiniciaNivel();
        }
    }

    /**
     * Metodo para decrementar en una unidad al puntaje.
     */
    public void decrementaPuntaje()
    {
        puntaje-=1;
    }

    /**
     * Metodo que regresa el puntaje del juego
     * @return puntaje, regresa el valor del puntaje
     */
    public int damePuntaje()
    {
        return puntaje;
    }

    /**
     * Metodo que chesa si el puntaje llego a 0 para posteriormente hacer que se decremente una vida
     * @return band band es una variable temporal para checar si es true que el puntaje llego a 0 o es false.
     */
    public boolean puntajeLlegoCero()
    {
        boolean band=true;
        if(puntaje<=0)
            band =true;
        else
            band=false;
        return band;

    }
}
